/**
 * @file VectorFunction.h
 * @brief The class of vector function.
 * @author XDDDD
 * @version 
 * @date 2021-04-28
 */

#ifndef __PAISLEYPARK__VECTORFUNCTION_H__
#define __PAISLEYPARK__VECTORFUNCTION_H__

#include "iostream"
#include "Point.h"

template <std::size_t N, std::size_t M>
class VectorFunction {
public:
	/**
	 * @brief Reload the operator () to calculate the f(p)
	 *
	 * @param _p  The given point.
	 *
	 * @return f(p)
	 */
	virtual Point<M> operator()(const Point<N>& _p) const = 0;
};

#else
//Do nothing.
#endif
